package com.hw01.service;

import com.hw01.common.Result;
import com.hw01.common.ResultPage;
import com.hw01.dto.PayrollsQueryDto;
import com.hw01.entity.Payrolls;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hw01.vo.PayrollsVo;
import io.swagger.annotations.ApiParam;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.ResponseEntity;

import java.util.List;

/**
 * <p>
 * 工资单 服务类
 * </p>
 *
 * @author zhong
 * @since 2024-03-18
 */
public interface PayrollsService extends IService<Payrolls> {
    
    /**
     * 查询员工工资
     * 
     * @param userId 员工id
     * @param year 年份
     * @param month 月份
     * @return 结果
     */
    Result<List<PayrollsVo>> getPayrollsList(Long userId, String year, String month);

    /**
     * 查询员工工资单(分页)
     * 
     * @param dto 工资单查询参数
     * @return 结果
     */
    ResultPage<PayrollsVo> getPayrollsPage(PayrollsQueryDto dto);

    /**
     * 一键评级-工资计算
     *
     * @param year 年份
     * @param month 月份(默认当月)
     * @return 结果
     */
    Result<Boolean> payrollComputation(String year, String month);

    /**
     * 下载工资单
     *
     * @param year 年份
     * @param month 月份(默认当月)
     * @return 结果
     */
    ResponseEntity<InputStreamResource> downloadPayrolls(String year, String month);

}
